package copyengine.ui.component.panel
{
	import flash.display.DisplayObjectContainer;

	public class CEPanelSubElement
	{
		private var reLayourPanelCallBack:Function;

		public function CEPanelSubElement()
		{
		}

		internal function initialize():void
		{
			doInitialize();
		}

		internal function dispose():void
		{
		}

		/**
		 *<b>调整Element的大小</b>
		 * </br></br>当Element元素在Intialize以后大小又发生了变化，
		 * 则调用该函数,通知父级Panel面板进行调整。
		 * </br><b>注意!!! </b>父级Panel面板是通过getElementContainer取得到的元件大小
		 * 进行Layout子元件的
		 */
		protected final function elementResize():void
		{
			reLayourPanelCallBack();
		}

		/**
		 *<b>设置Element大小发生改变后的回调函数</b>
		 * </br></br>当Element的大小发生改变时候则,
		 * 调用elementResize函数调整当前Element的大小,此时会回调该方法所设置的函数
		 */
		internal function setElementResizedCallBack(_f:Function):void
		{
			reLayourPanelCallBack = _f;
		}

		protected function doInitialize():void
		{
		}

		protected function doDispose():void
		{
		}

		public function getElementContainer():DisplayObjectContainer
		{
			throw new Error("Child Class should override this function");
		}

	}
}
